package com.syyo.gulimall.seckill.scheduled;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * @author: wang
 * @date: 2021/5/20 17:29
 * @Description:
 *
 * 定时任务
 *      1、@EnableScheduling 开启任务
 *      2、@Scheduled(cron = "* * * ? * 4") 设置时间
 *
 * 异步任务
 *      1、@EnableAsync 开启异步任务
 *      2、@Async 给需要异步的方法上加上这个注解
 *
 *
 */
@Slf4j
//@Component
//@EnableAsync
//@EnableScheduling
public class HelloScheduled {

    /**
     *
     *  1.spring中6位组成，不能用7位
     *  2.spring中的周，是1-7，从周日开始，cron是从周一开始
     *  3.spring中的任务默认是阻塞的
     *      1）可以让业务用多线程异步运行
     *      2） 支持定时任务多线程，设置线程池的数量，因为版本问题可能会失效
     *      3） 支持异步定时任务
     *
     *   解决：使用异步任务 + 定时任务来完成定时任务不阻塞的功能
     *
     */
//    @Async
//    @Scheduled(cron = "* * * ? * 4")
    public void hello(){
        System.out.println("hello");
    }
}
